世界银行数据批量下载,暗含小心机呦!
欢迎投稿计量经济圈,计量相关都行
邮箱:econometrics666@sina.cn
编辑:计量经济圈
导读:做跨国分析时,世界银行数据库是下载各国经济变量、人口指标等宏观数据的一个重要来源。但是,世界银行数据虽然可以批量下载,但是下载的数据是EXCEL或者CSV格式,且格式都是横向排列,不符合我们做计量分析的要求。
小女子使用世界银行的数据经历了四个主要阶段:第一个阶段使用excel,即一个个的下载数据,然后在excel中复制、粘贴、转置等,数据处理完后再复制到stata,与其它数据匹配,这个阶段全靠勤奋和人缘(找朋友帮忙复制粘贴,哈哈);
第二个阶段,依旧先下载,然后使用stata清理,借助reshape命令,长变宽,宽变长,再merge,但是reshape一次只能转置一个变量,就需要把所有变量一个一个分开导入到stata,加上小循环,还可以提高一点速度,否则此阶段也就是比第一阶段稍微快速加节约体力一点;
第三个阶段,借助wbopendata,先下载,再merge,这个时候就已经大大提速了,但是由于各种未知原因,我一次只能下载几个数据,再merge,还是有点点麻烦;
第四个阶段,就是刚刚摸索出来的现在,只需要借助excel一点点功能,就可以全靠stata完成数据的下载,且不需要过多清理,简直完美!重点在后面!木有耐心的直接跳到第3个!
现在就来介绍下载世界银行数据的神器——wbopendata!!!
1.wbopendata的简单介绍
先下载安装ssc install wbopendata,想知道wbopendata的基本使用方法,直接help wbopendata.下面是命令wbopendata的基本语法
wbopendata, Parameters [Options]
Parameters包括country(),topics ()和indicator(),三个分别是指定需要下载的国家、主题或者具体的指标,其中country和indicator一次可以指定多个国家和指标,中间用分号隔开,主题一次只能指定一个。注意:countrycode、topic code和indicator code都是世界银行的code名称。
[Options]包括long,clear,latest,nometadata,year(year1:year2),language
Long:指定下载数据的类型为长型,默认是宽型
Clear:清空内存的数据
Latest:下载更新的数据
nometadata:omits the display of metadata
year:指定下载数据的年份起始点
language:指定语言,支持英语(en)、法语(fr)和西班牙语(es)
2.examples
下载中国的所有数据
wbopendata,country(chn - China) clear
下载topic2的援助效率的数据,语言是英语
wbopendata,language(en - English) topics(2 - Aid Effectiveness) clear
下载Agricultural machinery,数据类型长型
wbopendata,language(en - English) indicator(ag.agr.trac.no - Agricultural machinery,tractors) long clear
下载多个国家
wbopendata,country(ago;bdi;chi;dnk;esp) indicator(sp.pop.0610.fe.un) clear
下载多个指标
wbopendata,indicator(si.pov.dday; ny.gdp.pcap.pp.kd) clear long
由于wbopendata的国家和指标变量名都是世界银行的固定模式,变量名称很长且比较麻烦,如果一个个的手动输入下载,估计各位看官还不如不使用这个命令。所以,下面就需要一点点小“心机”啦,借助excel成功实现“懒式”下载。
3.批量下载如何做?
首先从世界银行网站(WDI网址:http://databank.shihang.org(中文版);http://databank.worldbank.org(英文版)),随便选择一个国家(如china),一个年份(如2016),选择你所需要的指标,然后下载下来,保存为世界发展指标.xlsx。表格中sheet2- Definition and Source会有各个变量名,我们只需导入sheet2.
打开stata,导入sheet2
cd C:\Stata15\personal
cap mkdir 世界银行 //新建世界银行文件夹
cd 世界银行 //下载的文件之后都在此文件夹下
***划重点!!!!
***心机1:只导入sheet2。表格中sheet2- Definition and Source会有各个变量名,导入后我们会得到indicator code.
import excelusing C:\Stata15\personal\世界发展指标.xlsx, ///sheet("Definitionand Source") first case(lower) clear //导入数据
**心机2:使用一个小循环,让stata自行下载每个变量,并分别保存成一个.dta文件
levelsofcode,clean local(var) //将所有变量名local在var暂元中
foreach x of local var {
wbopendata,indicator("`x'")clear long year(year1960-2016)
save wb`x'.dta,replace
}
这时,我们就将所有数据下载下来了
**心机3:openall合并所有.dta文件,不再使用merge,但是此举有个小问题,后面(或者下次)再说!!!!
fs wb?*.dta
openall
***再将不要的单个数据删除
foreach f in`r(files)' {
rm `f'
}
***心机4:批量修改变量名和加标签
这时候就要借助excel
首先批量加中文标签,先将sheet1中的变量和中文名另放一个sheet中,使用lower函数将大写全部变成小写,再使用替换,将“.”换成“_”,这样可以和stata中的变量名称保持一致。
再生成几列lable var“ ”,变成最后的样子
复制粘贴到do文件中,这是do文件中中文名前后会有空格,我们使用快捷键ctrl+C+H将空格替换
然后就可以美美的执行了!左图是执行前,右图是执行后!
最后按照相同的套路,先在excel中修改变量名,再复制粘贴到do文档中执行就可以了!左边是excel,右边是do文档执行后的结果!
save wdi.dta,replace
大功告成!剩下的就是数据清理了!drop,keep,reshape…
https://v.qq.com/txp/iframe/player.html?vid=r0547m1f8fx&width=500&height=375&auto=0
写在后面:各位圈友,咱们的计量经济圈社群里面资料和计量咨询都很多,希望大家能够积极加入咱们这个大家庭(戳这里)。之后我们会逐步邀请社群里的圈友再直接建立微信群与圈圈对话,进去之后一定要看“群公告”,不然接收不了群息。
亚洲大学排行榜泰晤士时报2018
提议
欢迎各位投稿给计量经济圈,各种文献笔记、计量技巧和最新发现都可以实名在这里发出来,让你在这个圈子积累声誉和将来的合作文章合作机会。